
/*
 * Description: 字典
 * Author: ty
 * Created on 2025-8-9 16:47
 */


// 第一个参数：相对路径
// 第二个参数：是否查询子目录（true 表示递归）
// 第三个参数：匹配文件的正则表达式（这里匹配所有 .js 文件，但排除 index.js 可选）
const context = require.context("@/dict", false, /\.js$/)

const DictList = {}

context.keys().forEach(fileName => {
    // 排除当前文件（比如 index.js 自身）
    if (fileName === './index.js') return;

    // 获取文件名（去掉 ./ 和 .js 后缀）
    const moduleName = fileName.replace(/^\.\/(.*)\.\w+$/, '$1');

    // 导入模块
    let module = context(fileName).default || context(fileName);
    for(let key in module) {
        DictList[moduleName+'.'+key] = module[key]
    }
})

// 获取列表
const getList = (dictName, showHide = false) =>{
    let list = DictList[dictName];
    if(!list) {
        console.error(dictName+'字典不存在');
        return []
    }
    return list.filter(item => showHide || !item.hide)
}

// 根据value获取label
const getLabel = (dictName, value, emptyText = '未知') =>{
    let list = getList(dictName);
    let item = list.find(w => `${w.value}` == `${value}`);
    return item ? item.label : emptyText
}

export default {
    list: getList,
    label: getLabel,
}

